﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CodeGenerator
{
    abstract class AstNodeVisitor 
    {
        abstract public bool Visit(AstMainClass node);
        abstract public bool Visit(AstStatements node);
        abstract public bool Visit(AstMethodDecl node);
        abstract public bool Visit(AstFunctionArgumentsList node);
        abstract public bool Visit(AstVarDeclaration node);
        abstract public bool Visit(AstAccessModifier node);
        abstract public bool Visit(AstStaticModifier node);
        abstract public bool Visit(AstInteger node);
        abstract public bool Visit(AstId node);
        abstract public bool Visit(AstArrayType node);
        abstract public bool Visit(AstFunctionCall node);
        abstract public bool Visit(AstFunctionCallWithReturnVal node);
        abstract public bool Visit(AstArgumentsList node);
        abstract public bool Visit(AstDotExpression node);
        abstract public bool Visit(AstWhileStatement node);
        abstract public bool Visit(AstArrayAccess node);
        abstract public bool Visit(AstLogicalExpression node);
        abstract public bool Visit(AstAddExpression node);
        abstract public bool Visit(AstMinusExpression node);
        abstract public bool Visit(AstMultiplicationExpression node);
        abstract public bool Visit(AstDivisionExpression node);
        abstract public bool Visit(AstAssigmentStatement node);
        abstract public bool Visit(AstIfStatement node);
        abstract public bool Visit(AstEntryPointMainFunctionDecl node);
        abstract public bool Visit(AstConsoleWriteFunctionCall node);
        abstract public bool Visit(AstParenExpression node);

    }
}
